Instalé nginx-extras de Ubuntu bash shell en mi sistema operativo Windows 10 de escritorio. Se requiere para activar un contenedor docker para una aplicación de ensamblaje web ASP.NET Core 3.1 Blazor para servir las páginas web estáticas. Mi nginx.conf:
events { } http { include mime.types; types { application/wasm wasm; } server { listen 80; index index.html; location / { root /var/www/web; try_files $uri $uri/ /index.html =404; } } }archivo acoplable:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env WORKDIR /app COPY . ./ RUN dotnet publish -c Release -o output FROM nginx:alpine WORKDIR /var/www/web COPY --from=build-env /app/output/wwwroot . COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 80Mi comando de compilación fue exitoso.
Sin embargo, cuando quise crear un contenedor usando el comando: docker run -p 8080:80 docker-wasm-blazor Me dio un error:
[emerg] 1#1: directiva desconocida "eventos" en /etc/nginx/nginx.conf:1 nginx: [emerg] directiva desconocida "eventos" en /etc/nginx/nginx.conf:1
Soy muy nuevo en nginx y la creación de contenedores , por lo que cualquier ayuda será muy apreciada. Gracias.
Yo tenía el mismo error. Se solucionó cambiando la codificación del archivo nginx.conf. Si crea el archivo nginx.conf en/con Visual Studio (Agregar -> nuevo archivo), lo más probable es que obtenga la codificación incorrecta (otras personas obtuvieron el mismo error).
En mi caso, la codificación era UTF-8 y necesitaba la codificación us-ascii. Lo más fácil fue eliminar mi archivo nginx.conf y volver a crearlo fuera de Visual Studio (usé Sublime Text pero creo que puedes usar el bloc de notas).
Resolví el problema excluyendo el archivo nginx.conf personalizado para copiar el archivo nginx.conf predeterminado eliminando la última línea del archivo docker. Ahora mi dockerfile se ve así: FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env WORKDIR /app COPY . ./ EJECUTAR dotnet publicar -c Liberar -o salida
DESDE nginx WORKDIR /usr/share/nginx/html COPY --from=build-env /app/output/wwwroot/ .
Recibí el mismo problema y lo solucioné eliminando los espacios en blanco antes y después de "eventos" y "http", por lo que mi archivo de configuración se convierte en:
events{} http{ include mime.types; types { application/wasm wasm; } server { listen 80; # Here, we set the location for Nginx to serve the files # by looking for index.html location / { root /usr/local/webapp/nginx/html; try_files $uri $uri/ /index.html =404; } } }